Migrate Python formatting to ruff from black#2026
Open
kieran-ryan wants to merge 1 commit intoapache:masterfrom
Open
Migrate Python formatting to ruff from black#2026kieran-ryan wants to merge 1 commit intoapache:masterfrom
kieran-ryan wants to merge 1 commit intoapache:masterfrom
Conversation
This speeds up formatting by multiples, uses ruff's cache on subsequent; and runs and works well in conjunction with IDEs and hooks. Designed as a drop-in replacement for black.
Member
|
hi @kieran-ryan , I'd be in favor of this change in principle. Although it may be good to float this on the mailing list first as it may be a little bit of disruptive change for people who may be in the habit of running Black. Especially because it seems like Ruff would do more reformatting than "just" a drop-in replacement. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Migrates Python formatting to ruff from black to speed up formatting by multiples (see below benchmarks); and for robustness improvements; such as those applied by the formatting of this merge request to string formatting, trailing commas rather than a mixture with and without; improved formatting of arguments, whitespace line handling, etc. - though all of which are included with later releases of various Python formatter tools.
The ruff formatter is "designed as a drop-in replacement for Black". The caching in particular improves development workflows with tools such as IDEs and hooks.
Ruff's default configuration is a superset of those specified by the black configuration within the
pyproject.toml; and thus only required extension to the custom pathsrc/buildstream/_protos.Raising based on observation and in case of interest.
Benchmarks
Cold Runs
Screenshots
Black
Ruff
Warm Runs
Screenshots
Black
Ruff